@inproceedings{sequoia,
 author = {Fatahalian, Kayvon and Horn, Daniel Reiter and Knight, Timothy J. and Leem, Larkhoon and Houston, Mike and Park, Ji Young and Erez, Mattan and Ren, Manman and Aiken, Alex and Dally, William J. and Hanrahan, Pat},
 title = {Sequoia: programming the memory hierarchy},
 booktitle = {SC '06: Proceedings of the 2006 ACM/IEEE conference on Supercomputing},
 year = {2006},
 isbn = {0-7695-2700-0},
 pages = {83},
 location = {Tampa, Florida},
 doi = {http://doi.acm.org/10.1145/1188455.1188543},
 publisher = {ACM},
 address = {New York, NY, USA},
 }
@inproceedings{sequoia-compiler,
 author = {Knight, Timothy J. and Park, Ji Young and Ren, Manman and Houston, Mike and Erez, Mattan and Fatahalian, Kayvon and Aiken, Alex and Dally, William J. and Hanrahan, Pat},
 title = {Compilation for explicitly managed memory hierarchies},
 booktitle = {PPoPP '07: Proceedings of the 12th ACM SIGPLAN symposium on Principles and practice of parallel programming},
 year = {2007},
 isbn = {978-1-59593-602-8},
 pages = {226--236},
 location = {San Jose, California, USA},
 doi = {http://doi.acm.org/10.1145/1229428.1229477},
 publisher = {ACM},
 address = {New York, NY, USA},
 }


@inproceedings{Boehm05,
  author    = {Hans-Juergen Boehm},
  title     = {Threads cannot be implemented as a library},
  booktitle = {PLDI},
  year      = {2005},
  pages     = {261-268},
  ee        = {http://doi.acm.org/10.1145/1065010.1065042},
  crossref  = {DBLP:conf/pldi/2005},
  bibsource = {DBLP, http://dblp.uni-trier.de}
}
@proceedings{DBLP:conf/pldi/2005,
  editor    = {Vivek Sarkar and
               Mary W. Hall},
  title     = {Proceedings of the ACM SIGPLAN 2005 Conference on Programming
               Language Design and Implementation, Chicago, IL, USA, June
               12-15, 2005},
  booktitle = {PLDI},
  publisher = {ACM},
  year      = {2005},
  isbn      = {1-59593-056-6},
  bibsource = {DBLP, http://dblp.uni-trier.de}
}

@book{tempmetaprog,
 author = {Abrahams, David and Gurtovoy, Aleksey},
 title = {C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond (C++ in Depth Series)},
 year = {2004},
 isbn = {0321227255},
 publisher = {Addison-Wesley Professional},
 }
@book{moderncpp,
 author = {Alexandrescu, Andrei},
 title = {Modern C++ design: generic programming and design patterns applied},
 year = {2001},
 isbn = {0-201-70431-5},
 publisher = {Addison-Wesley Longman Publishing Co., Inc.},
 address = {Boston, MA, USA},
 }
@book{dragonbook,
 author = {Aho, Alfred V. and Lam, Monica S. and Sethi, Ravi and Ullman, Jeffrey D.},
 title = {Compilers: Principles, Techniques, \& Tools with Gradiance},
 year = {2007},
 isbn = {0321547985, 9780321547989},
 publisher = {Addison-Wesley Publishing Company},
 address = {USA},
 }
@inproceedings{saha09,
 author = {Saha, Bratin and Zhou, Xiaocheng and Chen, Hu and Gao, Ying and Yan, Shoumeng and Rajagopalan, Mohan and Fang, Jesse and Zhang, Peinan and Ronen, Ronny and Mendelson, Avi},
 title = {Programming model for a heterogeneous x86 platform},
 booktitle = {PLDI '09: Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation},
 year = {2009},
 isbn = {978-1-60558-392-1},
 pages = {431--440},
 location = {Dublin, Ireland},
 doi = {http://doi.acm.org/10.1145/1542476.1542525},
 publisher = {ACM},
 address = {New York, NY, USA},
 }
@article{ imagine,
author = {Ujval J. Kapasi and William J. Dally and Scott Rixner and John D. Owens and Brucek Khailany},
title = {The Imagine Stream Processor},
journal ={Computer Design, International Conference on},
volume = {0},
year = {2002},
issn = {1063-6404},
pages = {282},
doi = {http://doi.ieeecomputersociety.org/10.1109/ICCD.2002.1106783},
publisher = {IEEE Computer Society},
address = {Los Alamitos, CA, USA},
}
@inproceedings{larrabee,
 author = {Seiler, Larry and Carmean, Doug and Sprangle, Eric and Forsyth, Tom and Abrash, Michael and Dubey, Pradeep and Junkins, Stephen and Lake, Adam and Sugerman, Jeremy and Cavin, Robert and Espasa, Roger and Grochowski, Ed and Juan, Toni and Hanrahan, Pat},
 title = {Larrabee: a many-core x86 architecture for visual computing},
 booktitle = {SIGGRAPH '08: ACM SIGGRAPH 2008 papers},
 year = {2008},
 pages = {1--15},
 location = {Los Angeles, California},
 doi = {http://doi.acm.org/10.1145/1399504.1360617},
 publisher = {ACM},
 address = {New York, NY, USA},
 }

@book{tcpl,
    author = {Stroustrup, Bjarne},
    isbn = {0201700735},
    month = {February},
    posted-at = {2008-07-07 14:05:11},
    priority = {0},
    publisher = {{Addison-Wesley Professional}},
    title = {The C++ Programming Language (Special 3rd Edition)},
    year = {2000}
}

@article{cellbe,
 author = {Kahle, J. A. and Day, M. N. and Hofstee, H. P. and Johns, C. R. and Maeurer, T. R. and Shippy, D.},
 title = {Introduction to the cell multiprocessor},
 journal = {IBM J. Res. Dev.},
 volume = {49},
 number = {4/5},
 year = {2005},
 issn = {0018-8646},
 pages = {589--604},
 publisher = {IBM Corp.},
 address = {Riverton, NJ, USA},
 }
@article{cellnetwork,
  author    = {Michael Kistler and
               Michael Perrone and
               Fabrizio Petrini},
  title     = {Cell Multiprocessor Communication Network: Built for Speed},
  journal   = {IEEE Micro},
  volume    = {26},
  number    = {3},
  year      = {2006},
  pages     = {10-23},
  ee        = {http://doi.ieeecomputersociety.org/10.1109/MM.2006.49},
  bibsource = {DBLP, http://dblp.uni-trier.de}
}
@inproceedings{merge,
 author = {Linderman, Michael D. and Collins, Jamison D. and Wang, Hong and Meng, Teresa H.},
 title = {Merge: a programming model for heterogeneous multi-core systems},
 booktitle = {ASPLOS XIII: Proceedings of the 13th international conference on Architectural support for programming languages and operating systems},
 year = {2008},
 isbn = {978-1-59593-958-6},
 pages = {287--296},
 location = {Seattle, WA, USA},
 doi = {http://doi.acm.org/10.1145/1346281.1346318},
 publisher = {ACM},
 address = {New York, NY, USA},
 }

@proceedings{DBLP:conf/asplos/2008,
  editor    = {Susan J. Eggers and
               James R. Larus},
  title     = {Proceedings of the 13th International Conference on Architectural
               Support for Programming Languages and Operating Systems,
               ASPLOS 2008, Seattle, WA, USA, March 1-5, 2008},
  booktitle = {ASPLOS},
  publisher = {ACM},
  year      = {2008},
  isbn      = {978-1-59593-958-6},
  bibsource = {DBLP, http://dblp.uni-trier.de}
}

@article{Loveman77,
  author    = {David B. Loveman},
  title     = {Program Improvement by Source-to-Source Transformation},
  journal   = {J. ACM},
  volume    = {24},
  number    = {1},
  year      = {1977},
  pages     = {121-145},
  ee        = {http://doi.acm.org/10.1145/321992.322000},
  bibsource = {DBLP, http://dblp.uni-trier.de}
}

@TECHREPORT{upc,
	AUTHOR = { W. Carlson and J.M. Draper and D.E. Culler and K. Yelick and E. Brooks and K. Warren },
	TITLE = {Introduction to UPC and Language Specification},
	INSTITUTION = { George Mason University },
	NUMBER = { CCS-TR-99-157 },
	YEAR = 1999,
	MONTH = MAY,
	NOTE = {\url{http://upc.gwu.edu/}},
}

@ONLINE{nvopencl,
        Author = {Nvidia},
	Title = {Nvidia OpenCL Programming Guide for the CUDA},
	Url = {http://www.nvidia.com/content/cudazone/download/OpenCL/}}

@ONLINE{cuda,
        Author = {Nvidia},
	Title = {CUDA},
	Url = {http://developer.nvidia.com/object/cuda.html}}

@article{tempturing,
	Author = {Todd L. Veldhuizen},
	Date-Added = {2009-11-12 03:12:30 +0800},
	Date-Modified = {2009-11-12 03:17:31 +0800},
	Title = {C++ Templates are Turing Complete}}


@ONLINE{tbb,
        Author = {Intel},
	Title = {Intel Thread Building Blocks},
	Url = {http://www.threadingbuildingblocks.org/documentation.php}}


@article{openmp,
	Keywords = {openmpspec},
        Author = {OpenMP Architecture Review Board},
	Title = {OpenMP Specificaiton Version 3.0},
	Url = {http://www.openmp.org/mp-documents/spec30.pdf},
	Year = {2008}}

@article{c++98,
	Title = {SO/IEC (1998). ISO/IEC 14882:1998(E): Programming Languages - C++ },
	Year = {2003}}

@article{c++03,
	Date-Added = {2009-11-12 04:08:50 +0800},
	Date-Modified = {2009-11-12 11:46:07 +0800},
	Title = {SO/IEC (2003). ISO/IEC 14882:2003(E): Programming Languages - C++ },
	Year = {2003}}

@article{c++0x,
        Title = {SO/IEC N2960, Standard for Programming Language C++, Working Draft},
        Year = {2009}
}

@article{cpplambda,
        Title = {SO/IEC N2927, New wording for C++0x lambdas},
        Author = {Daveed Vandevoorde},
        Year = {2009}
}

@article{opencl,
	Author = {Aaftab Munshi},
	Date-Added = {2009-11-12 03:52:45 +0800},
	Date-Modified = {2009-11-12 03:55:54 +0800},
	Title = {The OpenCL Specification Version 1.0},
	Year = {2009}}

@electronic{mpl,
	Author = {Aleksey Gurtovoy, David Abrahams},
	Date-Added = {2009-11-12 03:32:08 +0800},
	Date-Modified = {2009-11-12 03:49:17 +0800},
	Title = {The BOOST C++ Meta-programming Library},
	Urldate = {www.boost.org/doc/libs/release/libs/mpl/doc/paper/mpl_paper.pdf}}

@inproceedings{brookgpu,
 author = {Buck, Ian and Foley, Tim and Horn, Daniel and Sugerman, Jeremy and Fatahalian, Kayvon and Houston, Mike and Hanrahan, Pat},
 title = {Brook for GPUs: stream computing on graphics hardware},
 booktitle = {SIGGRAPH '04: ACM SIGGRAPH 2004 Papers},
 year = {2004},
 pages = {777--786},
 location = {Los Angeles, California},
 doi = {http://doi.acm.org/10.1145/1186562.1015800},
 publisher = {ACM},
 address = {New York, NY, USA},
 }
@inproceedings{vartemp,
 author = {Gregor, Douglas and J\"{a}rvi, Jaakko},
 title = {Variadic templates for C++},
 booktitle = {SAC '07: Proceedings of the 2007 ACM symposium on Applied computing},
 year = {2007},
 isbn = {1-59593-480-4},
 pages = {1101--1108},
 location = {Seoul, Korea},
 doi = {http://doi.acm.org/10.1145/1244002.1244243},
 publisher = {ACM},
 address = {New York, NY, USA},
 }

@article{Fatahalian08,
 author = {Fatahalian, Kayvon and Houston, Mike},
 title = {A Closer Look of GPUs},
 journal = {Queue},
 volume = {6},
 number = {2},
 year = {2008},
 issn = {1542-7730},
 pages = {18--28},
 doi = {http://doi.acm.org/10.1145/1365490.1365498},
 publisher = {ACM},
 address = {New York, NY, USA},
 }
@electronic{cudaref,
        Auther = {Nvidia corp.},
        Title = {Nvidia CUDA Reference Manual Version 2.3},
        Urldate = {developer.download.nvidia.com/compute/cuda/2_3/toolkit/docs/CUDA_Reference_Manual_2.3.pdf},
}

@inproceedings{ThiesKA02,
  author    = {William Thies and
               Michal Karczmarek and
               Saman P. Amarasinghe},
  title     = {StreamIt: A Language for Streaming Applications},
  booktitle = {CC},
  year      = {2002},
  pages     = {179-196},
  ee        = {http://link.springer.de/link/service/series/0558/bibs/2304/23040179.htm},
  crossref  = {DBLP:conf/cc/2002},
  bibsource = {DBLP, http://dblp.uni-trier.de}
}
@proceedings{DBLP:conf/cc/2002,
  editor    = {R. Nigel Horspool},
  title     = {Compiler Construction, 11th International Conference, CC
               2002, Held as Part of the Joint European Conferences on
               Theory and Practice of Software, ETAPS 2002, Grenoble, France,
               April 8-12, 2002, Proceedings},
  booktitle = {CC},
  publisher = {Springer},
  series    = {Lecture Notes in Computer Science},
  volume    = {2304},
  year      = {2002},
  isbn      = {3-540-43369-4},
  bibsource = {DBLP, http://dblp.uni-trier.de}
}

@inproceedings{tuningfrm,
 author = {Ren, Manman and Park, Ji Young and Houston, Mike and Aiken, Alex and Dally, William J.},
 title = {A tuning framework for software-managed memory hierarchies},
 booktitle = {PACT '08: Proceedings of the 17th international conference on Parallel architectures and compilation techniques},
 year = {2008},
 isbn = {978-1-60558-282-5},
 pages = {280--291},
 location = {Toronto, Ontario, Canada},
 doi = {http://doi.acm.org/10.1145/1454115.1454155},
 publisher = {ACM},
 address = {New York, NY, USA},
 }

@article{gmapreduce,
 author = {Dean, Jeffrey and Ghemawat, Sanjay},
 title = {MapReduce: simplified data processing on large clusters},
 journal = {Commun. ACM},
 volume = {51},
 number = {1},
 year = {2008},
 issn = {0001-0782},
 pages = {107--113},
 doi = {http://doi.acm.org/10.1145/1327452.1327492},
 publisher = {ACM},
 address = {New York, NY, USA},
 }

@inproceedings{Guyer99,
 author = {Guyer, Samuel Z. and Lin, Calvin},
 title = {An annotation language for optimizing software libraries},
 booktitle = {PLAN '99: Proceedings of the 2nd conference on Domain-specific languages},
 year = {1999},
 isbn = {1-58113-255-7},
 pages = {39--52},
 location = {Austin, Texas, United States},
 doi = {http://doi.acm.org/10.1145/331960.331970},
 publisher = {ACM},
 address = {New York, NY, USA},
 }
@article{cml,
 author = {Thies, William and Karczmarek, Michal and Gordon, Michael and Maze, David and Wong, Jeremy and Hoffmann, Henry and Brown, Matthew and Amarasinghe, Saman},
 title = {A common machine language for grid-based architectures},
 journal = {SIGARCH Comput. Archit. News},
 volume = {30},
 number = {3},
 year = {2002},
 issn = {0163-5964},
 pages = {13--14},
 doi = {http://doi.acm.org/10.1145/571666.571673},
 publisher = {ACM},
 address = {New York, NY, USA},
 }
@inproceedings{erlang,
 author = {Armstrong, Joe},
 title = {The development of Erlang},
 booktitle = {ICFP '97: Proceedings of the second ACM SIGPLAN international conference on Functional programming},
 year = {1997},
 isbn = {0-89791-918-1},
 pages = {196--203},
 location = {Amsterdam, The Netherlands},
 doi = {http://doi.acm.org/10.1145/258948.258967},
 publisher = {ACM},
 address = {New York, NY, USA},
 }

@inproceedings{haskell,
 author = {Peyton Jones, Simon and Gordon, Andrew and Finne, Sigbjorn},
 title = {Concurrent Haskell},
 booktitle = {POPL '96: Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages},
 year = {1996},
 isbn = {0-89791-769-3},
 pages = {295--308},
 location = {St. Petersburg Beach, Florida, United States},
 doi = {http://doi.acm.org/10.1145/237721.237794},
 publisher = {ACM},
 address = {New York, NY, USA},
 }

@book{javacon,
 author = {Peierls, Tim and Goetz, Brian and Bloch, Joshua and Bowbeer, Joseph and Lea, Doug and Holmes, David},
 title = {Java Concurrency in Practice},
 year = {2005},
 isbn = {0321349601},
 publisher = {Addison-Wesley Professional},
 }
@book{wincon,
 author = {Duffy, Joe},
 title = {Concurrent Programming on Windows},
 year = {2008},
 isbn = {032143482X, 9780321434821},
 publisher = {Addison-Wesley Professional},
 }

@inproceedings{pmh,
 author = {Alpern, B. and Carter, L. and Ferrante, J.},
 title = {Space-limited procedures: a methodology for portable high-performance},
 booktitle = {PMMP '95: Proceedings of the conference on Programming Models for Massively Parallel Computers},
 year = {1995},
 isbn = {0-8186-7177-7},
 pages = {10},
 publisher = {IEEE Computer Society},
 address = {Washington, DC, USA},
 }